1. Technical Field
This invention relates to in general to computers, and more specifically to data storage systems. Still more specifically, the present invention relates to a method and system for accessing data from a drive in a Redundant Array of Independent Disks (RAID) array while the drive is in a timeout mode.
2. Description of the Related Art
In the field of this invention it is known that configuring data storage media such as disk drives as members of a RAID array enables data to be retrieved even when a disk drive fails. Some applications, however, require not only that data is not lost but that the data in the array can be read within a short time (for example, within 10 seconds maximum).
There are several reasons why some data read from a disk drive may be delayed by more than 10 seconds even when the disk drive has not permanently failed.
For example, when a command has been lost within the disk drive, the adapter or controller that controls the disk drive must wait for the command to xe2x80x98timeoutxe2x80x99 and take recovery steps when the timeout period is exceeded. The delay to recovering data due to a command being lost is typically over 30 seconds.
In another example, new disk drive firmware may be in the process of being loaded to the disk drive. This could take 30 seconds. Furthermore, a sector on the disk may be in the process of being reassigned, delaying a subsequent read command. This delay may be over 10 seconds.
Some computer systems cannot tolerate a delay of this length to complete an operation and under such conditions will terminate the application with an error. From European patent publication no. EP0926891A there is known a scheme for reconstruction of data for a member disk of a RAID array that would have resulted in that operation being completed quickly. However, this known scheme was for a specific application and required that a timeout period elapsed before data was reconstructed. This has the disadvantage that in a typical computer system many operations are queued, and the system cannot tolerate having to wait for all the timeouts of previous operations to have expired before reconstructing data.
A need therefore exists for a data storage array method and arrangement wherein the abovementioned disadvantage(s) may be alleviated.
The present invention accordingly provides a method and system for reading data from a redundant array of computer data storage media elements without having to wait for a timeout in a drive in the redundant array. If the requested data is from a drive that is temporarily in a timeout, the requested data is reconstructed using other drives in the redundant array, and the reconstructed data is sent to the requester via an array controller. When the drive holding the originally requested data comes back from the timeout, the drive might respond to the original request for the data by transmitting the originally requested data to the array controller. However, since the request for the originally requested data has been fulfilled by the transmission of the reconstructed data, the array controller ignores the originally requested data just received. As long as the drive is in timeout, it is in a reconstruct mode, performing the above described reconstruction and transmission. Subsequent requests for other data to the drive result in similar reconstructions as long as the drive is in timeout.
In a preferred embodiment, the data used to reconstruct the original data is an exclusive-OR equivalent of the original data, the data used for the reconstruction being held on each of the other media elements of the array. Alternately, the data used for the reconstruction is a duplicate copy of the original data, the data used for the reconstruction being held on at least one of the other media elements of the array. Likewise, data stored in other drives for use in reconstructing subsequent original data requested while the drive is in timeout is either an exclusive-OR or a duplicate copy of the subsequent original data.
In this way a data storage array method and arrangement is provided in which data may be returned by the array controller within a short time, as required by some applications, despite the first disk drive experiencing a protracted delay during the timeout.
The above, as well as additional objectives, features, and advantages of the present invention will become apparent in the following detailed written description.